<?php
/**
 * 全局通用
 *
 */
class global_class
{
	/**
	 * 获取请求ip
	 *
	 * @return ip地址
	 */
	static public function ip() {
		if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
			$ip = getenv('HTTP_CLIENT_IP');
		} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
			$ip = getenv('HTTP_X_FORWARDED_FOR');
		} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
			$ip = getenv('REMOTE_ADDR');
		} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
			$ip = $_SERVER['REMOTE_ADDR'];
		}
		return preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';
	}


	/**
	* 产生随机字符串
	*
	* @param    int        $length  输出长度 
	* @param    string     $chars   可选的 ，默认为 0123456789
	* @return   string     字符串
	*/
	static public function random($length, $chars = '0123456789') {
		$hash = '';
		$max = strlen($chars) - 1;
		for($i = 0; $i < $length; $i++) {
			$hash .= $chars[mt_rand(0, $max)];
		}
		return $hash;
	}
	/**
	 * 字符截取 
	 * @param $string
	 * @param $num
	 * @param $more
	 */
	static function str_cut($str,$num,$more=false)
	{
		$leng=strlen($str);
		if($num>=$leng)	return $str;
		$str=preg_replace("#[\r\n\s]#is",' ',$str);
		$str=strip_tags($str);
		$word=0;
		$i=0;
		while($word!=$num)
		{
			if(ord($str[$i])>0xC3)
			{
				$re.=substr($str,$i,3);
				$i+=3;
				$word++;
			}
			else
			{
				$re.=substr($str,$i,1);
				$i++;
				$word++;
			}
		}
		if($more)	$re.='...';
		return $re;
	}

	/**
	 * 把数组的Value转成key
	 *
	 * @param $array 要转的数据 $value_name 把那个字段转成KEY 
	 *
	 * @return array $array 转后的数组
	 */
	static function array_valuetokey($array, $value_name)
	{
		if (empty($array) || !is_array($array))
		{
			return $array;
		}
		$toarray = array();
		foreach ($array as $val)
		{
			$tokey = isset($val[$value_name])?$val[$value_name]:0;
			$toarray[$tokey] = $val;
		}
		
		return $toarray;
	}
}
?>